/******************************************************************************
* Copyright (C) 2010-2011 Computer Graphics Systems Group at the 
* Hasso-Plattner-Institute (HPI), Potsdam, Germany.
*
* Lecture : Geovisualisation Summer Term 2011
* Exercise: Processing Rendering OpenStreetMap Data 
*
* Author: sebastian.pasewaldt@hpi.uni-potsdam.de
*
******************************************************************************/

#ifndef __POINTOFINTERESTNODE_H__
#define __POINTOFINTERESTNODE_H__


//[-------------------------------------------------------]
//[ Includes                                              ]
//[-------------------------------------------------------]

#include <osg/Group>
#include <osg/Vec3>
#include <osg/Image>

#include "ToggleNode.h"

//[-------------------------------------------------------]
//[ Classes                                               ]
//[-------------------------------------------------------]

class PointOfInterestNode: public osg::Group
{
    //[-------------------------------------------------------]
    //[ Public functions                                      ]
    //[-------------------------------------------------------]
    public:
		/**
		*  @brief
		*    Constructor
		*/
		PointOfInterestNode(osg::Vec3 position, unsigned int category);
		
		/**
		*  @brief
		*    Destructor
		*/
		~PointOfInterestNode();

    //[-------------------------------------------------------]
    //[ Private functions                                     ]
    //[-------------------------------------------------------]
    private:
		
		/**
		*  @brief
		*    sets the image (m_image) for the billboard based on a category code
		*/
		void stylePointOfInterest(unsigned int category);


    //[-------------------------------------------------------]
    //[ Private data                                          ]
    //[-------------------------------------------------------]
    private:
		osg::Image* m_image;

};


#endif // __POINTOFINTERESTNODE_H__